1#!/bin/keymap -l 2# 3# Raw key numbering for Apple Extended French keyboard... 4# K E Y P A D K E Y S 5# 6# [ esc ] [ f1] [ f2] [ f3] [ f4] [ f5] [ f6] [ f7] [ f8] [ f9] [f10] [f11] [f12] [f13] [f14] [f15] [f16] [sd-] [sd+] [sdm] [eje] 7# 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d ???? ???? ???? ???? ???? ???? ???? ???? 8# 9# [ @ ] [ & ] [ é ] [ " ] [ ' ] [ ( ] [ § ] [ è ] [ ! ] [ ç ] [ à ] [ ) ] [ - ] [ bck ] [ins] [hme] [pup] [num] [ = ] [ / ] [ * ] 10# 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x6a 0x23 0x24 11# 12# [tab] [ a ] [ z ] [ e ] [ r ] [ t ] [ y ] [ u ] [ i ] [ o ] [ p ] [ ^ ] [ $ ] [ ret ] [del] [end] [pdn] [ 7 ] [ 8 ] [ 9 ] [ - ] 13# 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 [ ] 0x34 0x35 0x36 0x37 0x38 0x39 0x25 14# [ ] 15# [cap] [ q ] [ s ] [ d ] [ f ] [ g ] [ h ] [ j ] [ k ] [ l ] [ m ] [ ù ] [ ` ] [____] [ 4 ] [ 5 ] [ 6 ] [ + ] 16# 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x33 0x47 0x48 0x49 0x4a 0x3a 17# 18# [shf] [ < ] [ w ] [ x ] [ c ] [ v ] [ b ] [ n ] [ , ] [ ; ] [ : ] [ = ] [ shift ] [ up] [ 1 ] [ 2 ] [ 3 ] [ent] 19# 0x4b 0x69 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a [ ] 20# [ ] 21# [ ctr ] [ opt ] [ cmd ] [ space ] [ cmd ] [ opt ] [ ctr ] [lft] [dwn] [rgt] [ 0 ] [ , ] [___] 22# 0x5c 0x5d 0x66 0x5e 0x67 0x5f 0x60 0x61 0x62 0x63 0x64 0x65 0x5b 23# 24 25# Some keys of this keyboard have unmapped keycodes (see src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp) : 26# F13 : 0x68 (should probably be mapped to Print Screen) 27# F14 : 0x69 28# F15 : 0x6a 29# F16 : 0x6b 30# The sound volume and disc eject keys (at the top of the keypad) are not recognized at all. 31 32# Some virtual machines (like VMWare Fusion) map some keys to others : 33# Keypad "=" => 0x1d ("=" on standard PC keyboards, but "-" on Apple keyboard) 34# F13 => 0x0e (Print Screen) 35# F14 => 0x0f (Scroll Lock) 36# F15 => 0x22 (Num Lock) 37# F16 => 0x67 (Right command ?) 38 39 40Version = 3 41CapsLock = 0x3b 42ScrollLock = 0x0f 43NumLock = 0x22 44LShift = 0x4b 45RShift = 0x56 46LCommand = 0x66 47RCommand = 0x67 48LControl = 0x5c 49RControl = 0x60 50LOption = 0x5d 51ROption = 0x5f 52Menu = 0x68 53 54# 55# Lock settings 56# To set NumLock, do the following: 57# LockSettings = NumLock 58# 59# To set everything, do the following: 60# LockSettings = CapsLock NumLock ScrollLock 61# 62LockSettings = 63# Legend: 64# n = Normal 65# s = Shift 66# c = Control 67# C = CapsLock 68# o = Option 69# Key n s c o os C Cs Co Cos 70Key 0x00 = '' '' '' '' '' '' '' '' '' 71Key 0x01 = 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 72Key 0x02 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 73Key 0x03 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 74Key 0x04 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 75Key 0x05 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 76Key 0x06 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 77Key 0x07 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 78Key 0x08 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 79Key 0x09 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 80Key 0x0a = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 81Key 0x0b = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 82Key 0x0c = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 83Key 0x0d = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 84Key 0x0e = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 85Key 0x0f = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 86Key 0x10 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 87Key 0x11 = '@' '#' '0' 0xe280a2 0xc5b8 '@' '#' 0xe280a2 0xc592 88Key 0x12 = '&' '1' '1' ' ' 0xc2b4 '&' '1' ' ' 0xc2b4 89Key 0x13 = 0xc3a9 '2' '2' 0xc3ab 0xe289e 0xc389 '2' 0xc38b 0xe289e 90Key 0x14 = '"' '3' '3' 0xe2809c 0xe2809d '"' '3' 0xe2809c 0xe2809d 91Key 0x15 = '\'' '4' '4' 0xe28098 0xe28099 '\'' '4' 0xe28098 0xe28099 92Key 0x16 = '(' '5' '5' '{' '[' '(' '5' '{' '[' 93Key 0x17 = 0xc2a7 '6' '6' 0xcdb6 0xc3a0 0xc2a7 '6' 0xcdb6 0c3a5 94Key 0x18 = 0xc3a8 '7' '7' 0xc2ab 0xc2bb 0xc388 '7' 0xc2ab 0xc2bb 95Key 0x19 = '!' '8' '8' 0xc2a1 0xc39b '!' '8' 0xc2a1 0xc39b 96Key 0x1a = 0xc3a7 '9' 0x1e 0xc387 0xc381 0xc387 '9' 0xc387 0xc381 97Key 0x1b = 0xc3a0 '0' '' 0xc3b8 0xc398 0xc380 '0' 0xc3b8 0xc398 98Key 0x1c = ')' 0xc2b0 '' '}' ']' ')' 0xc2b0 '}' ']' 99Key 0x1d = '-' '_' '' 0xe28094 0xe28093 '-' '_' 0xe28094 0xe28093 100Key 0x1e = 0x08 0x08 0x08 0x08 0x08 0x08 0x08 0x08 0x08 101Key 0x1f = 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 102Key 0x20 = 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 103Key 0x21 = 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 104Key 0x22 = '' '' '' '' '' '' '' '' '' 105Key 0x23 = '/' '/' '/' '/' '/' '/' '/' '/' '/' 106Key 0x24 = '*' '*' '*' '*' '*' '*' '*' '*' '*' 107Key 0x25 = '-' '-' '-' '-' '-' '-' '-' '-' '-' 108Key 0x26 = 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 109Key 0x27 = 'a' 'A' 0x01 0xc3a6 0xc386 'A' 'A' 0xc3a6 0xc386 110Key 0x28 = 'z' 'Z' 0x1a 0xc382 0xc385 'Z' 'Z' 0xc385 0xc385 111Key 0x29 = 'e' 'E' 0x05 0xc3aa 0xc38a 'E' 'E' 0xc3aa 0xc38a 112Key 0x2a = 'r' 'R' 0x12 0xc2a2 0xe2809a 'R' 'R' 0xc2a2 0xe2809a 113Key 0x2b = 't' 'T' 0x14 0xe280a0 0xe284a2 'T' 'T' 0xe284a2 0xe284a2 114Key 0x2c = 'y' 'Y' 0x19 0xc39a 0xc5b8 'Y' 'Y' 0xc5b8 0xc5b8 115Key 0x2d = 'u' 'U' 0x15 0xc2ba 0xc2aa 'U' 'U' 0xc2aa 0xc2aa 116Key 0x2e = 'i' 'I' 0x09 0xc3ae 0xc3af 'I' 'I' 0xc3af 0xc3af 117Key 0x2f = 'o' 'O' 0x0f 0xc593 0xc592 'O' 'O' 0xc592 0xc592 118Key 0x30 = 'p' 'P' 0x10 0xcf80 0xe2888f 'P' 'P' 0xe2888f 0xe2888f 119Key 0x31 = '^' 0xc2a8 0x1b 0xc3b4 0xc394 '^' 0xc2a8 0xc3b4 0xc394 120Key 0x32 = '$' '*' 0x1d 0xe282ac 0xc2a5 '$' '*' 0xe282ac 0xc2a5 121Key 0x33 = '`' 0xc2a3 0x1c '`' '#' '`' 0xc2a3 '`' '#' 122Key 0x34 = 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 123Key 0x35 = 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 124Key 0x36 = 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 125Key 0x37 = '7' '7' '7' '7' '7' '7' '7' '7' '7' 126Key 0x38 = '8' '8' '8' '8' '8' '8' '8' '8' '8' 127Key 0x39 = '9' '9' '9' '9' '9' '9' '9' '9' '9' 128Key 0x3a = '+' '+' '+' '+' '+' '+' '+' '+' '+' 129Key 0x3b = '' '' '' '' '' '' '' '' '' 130Key 0x3c = 'q' 'Q' 0x11 0xe280a1 0xcea9 'Q' 'Q' 0xcea9 0xcea9 131Key 0x3d = 's' 'S' 0x13 0xc392 0xe28891 'S' 'S' 0xe28891 0xe28891 132Key 0x3e = 'd' 'D' 0x04 0xe28882 0xe28886 'D' 'D' 0xe28886 0xe28886 133Key 0x3f = 'f' 'F' 0x06 0xc692 0xc2b7 'F' 'F' 0xc2b7 0xc2b7 134Key 0x40 = 'g' 'G' 0x07 0xefac81 0xefac82 'G' 'G' 0xefac82 0xefac82 135Key 0x41 = 'h' 'H' 0x08 0xc38c 0xc38e 'H' 'H' 0xc38e 0xc38e 136Key 0x42 = 'j' 'J' 0x0a 0xc38f 0xc38d 'J' 'J' 0xc38d 0xc38d 137Key 0x43 = 'k' 'K' 0x0b 0xc388 0xc38b 'K' 'K' 0xc38b 0xc38b 138Key 0x44 = 'l' 'L' 0x0c 0xc2ac '|' 'L' 'L' '|' '|' 139Key 0x45 = 'm' 'M' 0x0d 0xc2b5 0xc393 'M' 'M' 0xc393 0xc393 140Key 0x46 = 0xc3b9 '%' '' 0xc399 0xe280b0 0xc399 '%' 0xc399 0xe280b0 141Key 0x47 = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 142Key 0x48 = '4' '4' '4' '4' '4' '4' '4' '4' '4' 143Key 0x49 = '5' '5' '5' '5' '5' '5' '5' '5' '5' 144Key 0x4a = '6' '6' '6' '6' '6' '6' '6' '6' '6' 145Key 0x4b = '' '' '' '' '' '' '' '' '' 146Key 0x4c = 'w' 'W' 0x17 0xe280b9 0xe280ba 'W' 'W' 0xe280ba 0xe280ba 147Key 0x4d = 'x' 'X' 0x18 0xe28988 0xe28184 'X' 'X' 0xe28184 0xe28184 148Key 0x4e = 'c' 'C' 0x03 0xc2a9 0xc2a2 'C' 'C' 0xc2a2 0xc2a2 149Key 0x4f = 'v' 'V' 0x16 0xe2978a 0xe2889a 'V' 'V' 0xe2889a 0xe2889a 150Key 0x50 = 'b' 'B' 0x02 0xc39f 0xe288ab 'B' 'B' 0xe288ab 0xe288ab 151Key 0x51 = 'n' 'N' 0x0e '~' 0xc4b1 'N' 'N' 0xc4b1 0xc4b1 152Key 0x52 = ',' '?' '' 0xe2889e 0xc2bf ',' '?' 0xe2889e 0xc2bf 153Key 0x53 = ';' '.' '' 0xe280a6 0xe280a2 ';' '.' 0xe280a6 0xe280a2 154Key 0x54 = ':' '/' '' 0xc3b7 '\\' ':' '/' 0xc3b7 '\\' 155Key 0x55 = '=' '+' '' 0xe289a0 0xc2b1 '=' '+' 0xe289a0 0xc2b1 156Key 0x56 = '' '' '' '' '' '' '' '' '' 157Key 0x57 = 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 158Key 0x58 = '1' '1' '1' '1' '1' '1' '1' '1' '1' 159Key 0x59 = '2' '2' '2' '2' '2' '2' '2' '2' '2' 160Key 0x5a = '3' '3' '3' '3' '3' '3' '3' '3' '3' 161Key 0x5b = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 162Key 0x5c = '' '' '' '' '' '' '' '' '' 163Key 0x5d = '' '' '' '' '' '' '' '' '' 164Key 0x5e = ' ' ' ' 0x00 ' ' ' ' ' ' ' ' ' ' ' ' 165Key 0x5f = '' '' '' '' '' '' '' '' '' 166Key 0x60 = '' '' '' '' '' '' '' '' '' 167Key 0x61 = 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 168Key 0x62 = 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 169Key 0x63 = 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 170Key 0x64 = '0' '0' '0' '0' '0' '0' '0' '0' '0' 171Key 0x65 = ',' ',' ',' ',' ',' ',' ',' ',' ',' 172Key 0x66 = '' '' '' '' '' '' '' '' '' 173Key 0x67 = '' '' '' '' '' '' '' '' '' 174Key 0x68 = '' '' '' '' '' '' '' '' '' 175Key 0x69 = '<' '>' 0x1c 0xe289a4 0xe289a5 '<' '>' 0xe289a4 0xe289a5 176Key 0x6a = '=' '=' '=' '=' '=' '=' '=' '=' '=' 177Key 0x6b = '' '' '' '' '' '' '' '' '' 178Key 0x6c = '' '' '' '' '' '' '' '' '' 179Key 0x6d = '' '' '' '' '' '' '' '' '' 180Key 0x6e = '' '' '' '' '' '' '' '' '' 181Key 0x6f = '' '' '' '' '' '' '' '' '' 182Key 0x70 = '' '' '' '' '' '' '' '' '' 183Key 0x71 = '' '' '' '' '' '' '' '' '' 184Key 0x72 = '' '' '' '' '' '' '' '' '' 185Key 0x73 = '' '' '' '' '' '' '' '' '' 186Key 0x74 = '' '' '' '' '' '' '' '' '' 187Key 0x75 = '' '' '' '' '' '' '' '' '' 188Key 0x76 = '' '' '' '' '' '' '' '' '' 189Key 0x77 = '' '' '' '' '' '' '' '' '' 190Key 0x78 = '' '' '' '' '' '' '' '' '' 191Key 0x79 = '' '' '' '' '' '' '' '' '' 192Key 0x7a = '' '' '' '' '' '' '' '' '' 193Key 0x7b = '' '' '' '' '' '' '' '' '' 194Key 0x7c = '' '' '' '' '' '' '' '' '' 195Key 0x7d = '' '' '' '' '' '' '' '' '' 196Key 0x7e = '' '' '' '' '' '' '' '' '' 197Key 0x7f = '' '' '' '' '' '' '' '' '' 198Acute ' ' = 0xc2b4 199Acute 'A' = 0xc381 200Acute 'E' = 0xc389 201Acute 'I' = 0xc38d 202Acute 'O' = 0xc393 203Acute 'U' = 0xc39a 204Acute 'Y' = 0xc39d 205Acute 'a' = 0xc3a1 206Acute 'e' = 0xc3a9 207Acute 'i' = 0xc3ad 208Acute 'o' = 0xc3b3 209Acute 'u' = 0xc3ba 210Acute 'y' = 0xc3bd 211AcuteTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift 212Grave ' ' = '`' 213Grave 'A' = 0xc380 214Grave 'E' = 0xc388 215Grave 'I' = 0xc38c 216Grave 'O' = 0xc392 217Grave 'U' = 0xc399 218Grave 'a' = 0xc3a0 219Grave 'e' = 0xc3a8 220Grave 'i' = 0xc3ac 221Grave 'o' = 0xc3b2 222Grave 'u' = 0xc3b9 223GraveTab = Normal Option Option-Shift CapsLock-Option CapsLock-Option-Shift 224Circumflex ' ' = '^' 225Circumflex 'A' = 0xc382 226Circumflex 'E' = 0xc38a 227Circumflex 'I' = 0xc38e 228Circumflex 'O' = 0xc394 229Circumflex 'U' = 0xc39b 230Circumflex 'a' = 0xc3a2 231Circumflex 'e' = 0xc3aa 232Circumflex 'i' = 0xc3ae 233Circumflex 'o' = 0xc3b4 234Circumflex 'u' = 0xc3bb 235CircumflexTab = Normal Shift CapsLock CapsLock-Shift 236Diaeresis ' ' = 0xc2a8 237Diaeresis 'A' = 0xc384 238Diaeresis 'E' = 0xc38b 239Diaeresis 'I' = 0xc38f 240Diaeresis 'O' = 0xc396 241Diaeresis 'U' = 0xc39c 242Diaeresis 'Y' = 0xc5b8 243Diaeresis 'a' = 0xc3a4 244Diaeresis 'e' = 0xc3ab 245Diaeresis 'i' = 0xc3af 246Diaeresis 'o' = 0xc3b6 247Diaeresis 'u' = 0xc3bc 248Diaeresis 'y' = 0xc3bf 249DiaeresisTab = Normal Shift CapsLock CapsLock-Shift 250Tilde ' ' = '~' 251Tilde 'A' = 0xc383 252Tilde 'O' = 0xc395 253Tilde 'N' = 0xc391 254Tilde 'a' = 0xc3a3 255Tilde 'o' = 0xc3b5 256Tilde 'n' = 0xc3b1 257TildeTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift 258